/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.amuthu.parser;

import org.amuthu.expression.Expression;
import org.amuthu.expression.binary.ArithmeticExpression;
import org.amuthu.expression.binary.ComparisionExpression;
import org.amuthu.expression.binary.LogicExpression;
import org.amuthu.expression.function.FunctionExpression;
import org.amuthu.expression.terminal.NumberExpression;
import org.amuthu.expression.terminal.QuoteExpression;
import org.amuthu.expression.unary.UnaryExpression;

/**
 *
 * @author prabhu
 */
public abstract class ExpressionVisitor
{
   public abstract double evaluate(Expression expr);

   public abstract void visit(ComparisionExpression expr);

   public abstract void visit(LogicExpression expr);

   public abstract void visit(NumberExpression expr);

   public abstract void visit(ArithmeticExpression expr);

   public abstract void visit(QuoteExpression expr);

   public abstract void visit(UnaryExpression expr);

   public abstract void visit(FunctionExpression expr);

}
